home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs05.d81 / evsbasic.arc / PIECHART.DMO (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  2KB  |  121 lines

  1. 100 (null)
  2. 105 PRINT" THIS PROGRAM CREATES A PIE CHART."
  3. 110 PRINT" RAW DATA TO BUILD THE CHART COMES FROM"
  4. 115 PRINT" -DATA- STATEMENTS.  BY CHANGING THE"
  5. 120 PRINT" INFORMATION IN THE -DATA- STATMENTS"
  6. 125 PRINT" DIFFERENT PIE CHARTS CAN BE CREATED."
  7. 130 PRINT
  8. 135 PRINT" TO MAKE NEW CHARTS, ALTER THE -DATA-"
  9. 140 PRINT" STATEMENTS STARTING AT LINE# 1000,"
  10. 145 PRINT" AND ALSO THE VARIABLE -NE- (NUMBER OF"
  11. 150 PRINT" ELEMENTS) IN LINE# 515."
  12. 155 PRINT
  13. 160 PRINT" PRESS ANY KEY TO START."
  14. 165 PRINT
  15. 170 :
  16. 200 A$=(null)(1)
  17. 205 :
  18. 500 (null)5:(null)14,1:(null)6,2,5
  19. 505 (null) 320,-240,160,-120
  20. 510 RD=75 :REM CIRCLE RADIUS
  21. 515 NE=6  :REM NUMBER OF ELEMENTS
  22. 520 DIM VE(NE),NM$(NE)
  23. 525 GOSUB 905
  24. 530 GOSUB 1905
  25. 535 GOSUB 2005
  26. 540 GOSUB 2105
  27. 545 GOSUB 2205
  28. 550 GOSUB 2305
  29. 555 GOSUB 2405
  30. 560 :
  31. 565 A$=(null)(1)
  32. 570 :
  33. 575 (null) 0: (null)14,6: (null) 14
  34. 580 END
  35. 585 :
  36. 900 REM *READ RAW VALUES
  37. 905 TV=0
  38. 910 FOR I=1 TO NE
  39. 915 READ VE(I),NM$(I)
  40. 920 TV=TV+VE(I)
  41. 925 NEXT
  42. 930 READ TT$,BT$
  43. 935 RETURN
  44. 940 :
  45. 1000 REM *RAW CHART DATA
  46. 1005 DATA 3,WIDGETS
  47. 1010 DATA 6,THINGEES
  48. 1015 DATA 17,GADGETS
  49. 1020 DATA 8,WHATSITS
  50. 1025 DATA 9,WHOSITS
  51. 1030 DATA 4,WHERESITS
  52. 1035 :
  53. 1100 REM *CHART TITLES
  54. 1105 DATA"UBIQUITOUS PIE CHART CO."
  55. 1110 DATA"YEARLY SALES"
  56. 1115 :
  57. 1900 REM *SORT VALUES
  58. 1905 FOR I=1 TO NE-1
  59. 1910 FOR J=I+1 TO NE
  60. 1915 IF VE(I)>VE(J) THEN (null) VE(I),VE(J): (null) NM$(I),NM$(J)
  61. 1920 NEXT
  62. 1925 NEXT
  63. 1930 RETURN
  64. 1935 :
  65. 2000 REM 0*MAKE CIRCLE
  66. 2005 (null) 0,RD
  67. 2010 (null) 0,-RD
  68. 2015 (null) RD,0
  69. 2020 (null) -RD,0
  70. 2025 FOR I=1/RD TO (null)/4 STEP 1/RD
  71. 2030 B=RD*COS(I)
  72. 2035 C=RD*SIN(I)
  73. 2040 (null) B,C: (null) -B,C
  74. 2045 (null) B,-C: (null) -B,-C
  75. 2050 (null) C,B: (null) -C,B
  76. 2055 (null) C,-B: (null) -C,-B
  77. 2060 NEXT
  78. 2065 RETURN
  79. 2070 :
  80. 2100 REM 0*MAKE SLICES
  81. 2105 A=0
  82. 2110 FOR I=1 TO NE
  83. 2115 A=A+VE(I)
  84. 2120 B=2*(null)*A/TV+(null)/2
  85. 2125 (null) 0,0
  86. 2130 (null) RD*COS(B),RD*SIN(B)
  87. 2135 NEXT
  88. 2140 RETURN
  89. 2145 :
  90. 2200 REM 0*SHADE SLICES
  91. 2205 A=0
  92. 2210 FOR I=1 TO NE
  93. 2215 B=((null)*(4*A+2*VE(I)+TV))/(2*TV)
  94. 2220 A=A+VE(I)
  95. 2225 (null) RD/2*COS(B),RD/2*SIN(B)
  96. 2230 (null) 63-63*A/TV
  97. 2235 NEXT
  98. 2240 RETURN
  99. 2245 :
  100. 2300 REM 0*LABEL SLICES
  101. 2305 A=0
  102. 2310 FOR I=1 TO NE
  103. 2315 B=((null)*(4*A+2*VE(I)+TV))/(2*TV)
  104. 2320 A=A+VE(I)
  105. 2325 C=(RD+RD/10)*COS(B)
  106. 2330 D=(RD+RD/10)*SIN(B)
  107. 2335 IFC<0THENC=C-8*LEN(NM$(I))
  108. 2340 IFC=0THENC=C-4*LEN(NM$(I))
  109. 2345 (null) C,D+4
  110. 2350 (null) NM$(I)
  111. 2355 NEXT
  112. 2360 RETURN
  113. 2365 :
  114. 2400 REM *MAIN TITLES
  115. 2405 (null) -(LEN(TT$)*8)/2,112
  116. 2410 (null) "[138]";TT$
  117. 2415 (null) -(LEN(BT$)*8)/2,-96
  118. 2420 (null) "[138]";BT$
  119. 2425 RETURN
  120. 2430 :
  121.